﻿//#include<iostream>
//using namespace std;
//class A
//{
//public:
//	void func()
//	{
//		cout << "A::func()" << endl;
//	}
//};
//typedef void(A::* PF)(); //成员函数指针类型
//
//int main()
//{
//	PF pf = nullptr;
//	//c++规定成员函数要加&才能取到函数指针
//	pf = &A::func;//成员函数回调
//	A aa;
//	(aa.*pf)();
//
//}


#include<iostream>
using namespace std;
class Date
{
public:
	Date(int year = 1, int month = 1, int day = 1)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	void Print()
	{
		cout << _year << "-" << _month << "-" << _day << endl;
	}
	bool operator==(const Date& d)
	{
		return _year == d._year
			&& _month == d._month
			&& _day == d._day;
	}
	//private:
	int _year;
	int _month;
	int _day;
};
//bool operator==(const Date& d1, const Date& d2)
//{
//	return d1._year == d2._year
//		&& d1._month == d2._month
//		&& d1._day == d2._day;
//}在类外面
int main()
{
	Date d1(2024, 7, 5);
	Date d2(2024, 7, 6);
		// 运算符重载函数可以显⽰调⽤
	/*	operator==(d1, d2);*/
	// 编译器会转换成 operator==(d1, d2);
	/*d1 == d2;*/
	d1.operator==(d2);//调用成员函数
	d1 == d2; 
	return 0;
}